package com.miyu.common.service.book;

import com.alibaba.fastjson.JSONObject;
import com.miyu.common.pojo.book.BookPagePJ;
import com.miyu.common.pojo.book.BookRuleSet;

/**
 * 数据模块公共处理接口类
 * 包含一般常用的数据操作方法
 * @author
 *
 */
public interface BookCommonService {

    /**
     * 公共page解析根据传参不同解析
     * ruleId 规则ID
     * type取值类型
     * param 附加参数处理
     * 解析数据缓存到redis或ehche中
     * @param bppj
     * @return
     */
    JSONObject BookPageJX(BookPagePJ bppj);

    /**
     * 根据规则ID获取规则
     *
     * @param ruleId 规则id
     * @return {@link BookRuleSet}
     */
     BookRuleSet getBookRuleById(String ruleId);


    /**
     * 查询书细节
     *
     * @param url    解析url
     * @param ruleId 规则id
     * @return {@link JSONObject}
     */
    JSONObject queryBookDetail(String ruleId,String url);

    /**
     * 查询书章节
     *
     * @param ruleId 规则id
     * @param url    解析url
     * @return {@link JSONObject}
     */
    JSONObject queryBookChapter(String ruleId,String url);


    /**
     * 查询书阅读页面
     *
     * @param ruleId 规则id
     * @param url    url
     * @return {@link JSONObject}
     */
    JSONObject queryBookReader(JSONObject param);

    /**
     * 查询搜索书
     *
     * @param ruleId 规则id
     * @param url    url
     * @return {@link JSONObject}
     */
    JSONObject querySearchBook(JSONObject param);

    /**
     * 数据采集 每次数据采集
     *
     * @param param 参数
     * @return {@link JSONObject}
     */
    JSONObject collectBook(JSONObject param);
}
